Skip to content

build: lower openmm floor to 8.3 - #28

Merged
kaliif merged 1 commit into
mainfrom
build-lower-openmm-floor
Aug 6, 2026
Merged

build: lower openmm floor to 8.3#28
kaliif merged 1 commit into
mainfrom
build-lower-openmm-floor

Conversation

@kaliif

@kaliif kaliif commented Aug 6, 2026

Copy link
Copy Markdown
Collaborator

openmm is not imported by HIPPO. It is carried because molparse/protonate.py imports openmm.app and pdbfixer lazily inside a function without declaring either.

The >=8.4 floor was incidental: openmm was originally unpinned, and the constraint arrived in 86d0ff3 ("feat: new dependency management toolchain") as part of a bulk pin-to-current sweep. Nothing requires it — pdbfixer needs only openmm>=8.2, and the APIs molparse uses (PME, ForceField, Modeller, PDBFile, Simulation, PDBFixer) long predate that.

Impact. Users installing into conda/miniforge environments that already provide openmm 8.3.x could not satisfy >=8.4 from their existing install, so pip pulled a PyPI build over the top — often clobbering a CUDA-enabled conda build. The floor also excluded older Linux distributions: 8.4+ wheels are manylinux_2_34 (glibc >= 2.34) where 8.3 is manylinux_2_27/2_28.

Verification

  • Lockfile diff is the specifier line alone; openmm still resolves to 8.5.1.
  • A resolution constrained to openmm==8.3.1 now succeeds (189 packages).
  • An unconstrained install still takes 8.5.2.
  • make lint clean; test_compound.py + test_pose.py = 3 passed, 1 skipped.

Not pinned exactly: only 8.5.x ships linux aarch64 wheels, which [tool.uv] required-environments demands.

Also bumps version to 2.0.4 to match the release tag.

openmm is not imported by HIPPO. It is carried because molparse's
protonate.py imports openmm.app and pdbfixer lazily inside a function
without declaring either dependency.

The >=8.4 floor was incidental -- openmm was originally unpinned, and the
constraint arrived in 86d0ff3 ("feat: new dependency management toolchain")
as part of a bulk pin-to-current sweep, not because any API required it.
pdbfixer itself only needs openmm>=8.2, and the APIs molparse uses (PME,
ForceField, Modeller, PDBFile, Simulation, PDBFixer) long predate that.

The floor mattered to users installing into conda/miniforge environments
that already provide openmm 8.3.x: pip could not satisfy >=8.4 from the
existing install and pulled a PyPI build over the top of theirs. It also
excluded older Linux distributions, since 8.4+ wheels are manylinux_2_34
(glibc >= 2.34) where 8.3 is manylinux_2_27/2_28.

Resolution is unaffected -- openmm still locks to 8.5.1, and the lockfile
diff is the specifier line alone. Verified that a resolution constrained to
openmm==8.3.1 now succeeds, and that an unconstrained install still takes
8.5.2.

Not pinned exactly: only 8.5.x ships linux aarch64 wheels, which
[tool.uv] required-environments demands.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@kaliif
kaliif merged commit ea9906e into main Aug 6, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant